var gulp = require('gulp'), //本地安装gulp所用到的地方
  less = require('gulp-less');

//定义一个testLess任务（自定义任务名称）
gulp.task('testLess', function () {
  gulp.src('src/less/index.less') //该任务针对的文件
    .pipe(less()) //该任务调用的模块
    .pipe(gulp.dest('src/css')); //将会在src/css下生成index.css
});

gulp.task('default', ['testLess', 'elseTask']); //定义默认任务 elseTask为其他任务，该示例没有定义elseTask任务

//gulp.task(name[, deps], fn) 定义任务  name：任务名称 deps：依赖任务名称 fn：回调函数
//gulp.src(globs[, options]) 执行任务处理的文件  globs：处理的文件路径(字符串或者字符串数组) 
//gulp.dest(path[, options]) 处理完后文件生成路径


var gulp = require('gulp'),
  uglify = require('gulp-uglify');

gulp.task('jsmin', function () {
  gulp.src(['src/js/index.js', 'src/js/detail.js']) //多个文件以数组形式传入
    .pipe(uglify())
    .pipe(gulp.dest('dist/js'));
});
gulp.task('jsmin', function () {
  //压缩src/js目录下的所有js文件
  //除了test1.js和test2.js（**匹配src/js的0个或多个子文件夹）
  gulp.src(['src/js/*.js', '!src/js/**/{test1,test2}.js'])
    .pipe(uglify())
    .pipe(gulp.dest('dist/js'));
});

gulp.task('jsmin', function () {
  gulp.src(['src/js/*.js', '!src/js/**/{test1,test2}.js'])
    .pipe(uglify({
      //mangle: true,//类型：Boolean 默认：true 是否修改变量名
      mangle: { except: ['require', 'exports', 'module', '$'] },//排除混淆关键字mangle: true,//类型：Boolean 默认：true 是否修改变量名
      compress: true,//类型：Boolean 默认：true 是否完全压缩
      preserveComments: 'all' //保留所有注释
    }))
    .pipe(gulp.dest('dist/js'));
});

var gulp = require('gulp'),
  imagemin = require('gulp-imagemin');

gulp.task('testImagemin', function () {
  gulp.src('src/img/*.{png,jpg,gif,ico}')
    .pipe(imagemin())
    .pipe(gulp.dest('dist/img'));
});

gulp.task('testImagemin', function () {
  gulp.src('src/img/*.{png,jpg,gif,ico}')
    .pipe(imagemin({
      optimizationLevel: 5, //类型：Number  默认：3  取值范围：0-7（优化等级）
      progressive: true, //类型：Boolean 默认：false 无损压缩jpg图片
      interlaced: true, //类型：Boolean 默认：false 隔行扫描gif进行渲染
      multipass: true //类型：Boolean 默认：false 多次优化svg直到完全优化
    }))
    .pipe(gulp.dest('dist/img'));
});
//确保本地已安装imagemin-pngquant [cnpm install imagemin-pngquant --save-dev]
var pngquant = require('imagemin-pngquant');

gulp.task('testImagemin', function () {
  gulp.src('src/img/*.{png,jpg,gif,ico}')
    .pipe(imagemin({
      progressive: true,
      svgoPlugins: [{ removeViewBox: false }],//不要移除svg的viewbox属性
      use: [pngquant()] //使用pngquant深度压缩png图片的imagemin插件
    }))
    .pipe(gulp.dest('dist/img'));
});
//确保本地已安装gulp-cache [cnpm install gulp-cache --save-dev]
cache = require('gulp-cache');

gulp.task('testImagemin', function () {
  gulp.src('src/img/*.{png,jpg,gif,ico}')
    .pipe(cache(imagemin({
      progressive: true,
      svgoPlugins: [{ removeViewBox: false }],
      use: [pngquant()]
    })))
    .pipe(gulp.dest('dist/img'));
});
